package cn.hennancf.picture.handler;

import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import cn.hennancf.picture.entities.Folder;
import cn.hennancf.picture.entities.Picture;
import cn.hennancf.picture.enums.Message;
import cn.hennancf.picture.tools.CompareByCreateTime;
import cn.hennancf.picture.tools.CompareByName;
import cn.hennancf.picture.tools.ErrorUtils;
import cn.hennancf.picture.tools.FileUtils;
import cn.hennancf.picture.tools.ImageIoUtils;

/** 
* @author  作者: 陈飞
* @date 创建时间：2017年3月11日 下午4:22:36 
* @version 1.0 
* @parameter  
* @since  
* @return  
*/
public class MainHandler {
    
//    图片的主路径
    final static String PATH = "F:/picture";
    
    @SuppressWarnings("unused")
    public static void main(String[] args) {
        File file = new File(PATH);
        
//        判断是否为文件夹
        if (!new FileUtils().IsFile(file)) {
            return;
        }
        
//        获得父文件夹
        Folder fatherFolder = new FileUtils().getFiles(file);
//        获取子文件夹集合
        List<Folder> sonFolder = fatherFolder.getFolders();
        
//        通过子文件夹生成图片
        for (Folder son : sonFolder) {
//            取出文件夹里的所有图片的Url
            List<Picture> folderPictures = new ImageIoUtils().GetFolderPictureFiles(son);
//            变换图片的排序按图片名字排序和按创建时间排序
            Comparator<Picture> comparatorByName = new CompareByName();
            Comparator<Picture> comparatorByCreateTime = new CompareByCreateTime();
           
            Collections.sort(folderPictures, comparatorByCreateTime);
//            Collections.sort(folderPictures, comparatorByName);
            
//            组合照片
            try {
                new ImageIoUtils().Group(folderPictures,son.getName());
            } catch (IOException e) {
                new ErrorUtils(Message.IO_EXCEPTION).getMessage();
//                FIXME 不能直接打印异常 
                e.printStackTrace();
            }
        }
    }

}
